package com.wrl.design.principle.dependenceinversion;

/**
 * 依赖倒置原则
 * 1. 高层次模块不依赖低层次模块
 * 2. 抽象不应该依赖细节
 * 3. 针对接口编程
 *
 * @author Wang Renlei
 * @Date 2019/11/4 0004
 */
public class Test {

    // v2 版本
//    public static void main(String[] args) {
//        Alone alone = new Alone();
//        alone.studyCourse(new JavaCourse());
//        alone.studyCourse(new PythonCourse());
//    }

    //v3 构造器注入
//    public static void main(String[] args) {
//        Alone alone = new Alone(new JavaCourse());
//        alone.studyCourse();
//    }


    public static void main(String[] args) {
        Alone alone = new Alone();
        alone.setiCourse(new JavaCourse());
        alone.studyCourse();
    }
}
